package com.tingyun.sign.utils;

import java.io.Serializable;
import java.util.Date;

/**
 * 分页查询时用到的父类
 * @author like
 *
 */
public class PaginationParams implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Integer page;
	
	private Integer rows;
	
	/**
	 * 当前页
	 */
	private Integer pageNumber;
	/**
	 * 每页查询数
	 */
	private Integer pageSize;
	
	/**
	 * 时间查询条件：起始时间
	 */
	private Date startTime;

	/**
	 * 时间查询条件：结束时间
	 */
	private Date endTime;

	private String startTimeStr;
	
	private String endTimeStr;
    /**
     * 是否需要分页
     */
    private Integer needPage;
    
	public Integer getPage() {
		return page;
	}
	public void setPage(Integer page) {
		this.pageNumber = page;
		this.page = page;
	}
	public Integer getRows() {
		return rows;
	}
	public void setRows(Integer rows) {
		this.pageSize =rows;
		this.rows = rows;
	}
	/**
	 * 时间查询条件：起始时间
	 */
	public Date getStartTime() {
		return startTime;
	}
	/**
	 * 时间查询条件：起始时间
	 */
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}
	/**
	 * 时间查询条件：结束时间
	 */
	public Date getEndTime() {
		return endTime;
	}
	/**
	 * 时间查询条件：结束时间
	 */
	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
	/**
	 * 获取当前页
	 * @return
	 */
	public Integer getPageNumber() {
		if(null == pageNumber || pageNumber <= 0) {
			pageNumber = 1;
		}
		return pageNumber;
	}
	/**
	 * 设置当前页
	 * @param pageNumber
	 */
	public void setPageNumber(Integer pageNumber) {
		this.pageNumber = pageNumber;
	}
	/**
	 * 获取每页数量
	 * @return
	 */
	public Integer getPageSize() {
		if(null == pageSize || pageSize <= 0) {
			pageSize = 20;
		}
		return pageSize;
	}
	/**
	 * 设置每页数量
	 * @return
	 */
	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}
	/**
	 * sql获取分页查询的start，已经计算过
	 */
	public Integer getStart(){
		return (this.getPageNumber() - 1) * getPageSize();
	}
	
	/**
	 * sql获取分页查询的end，已经计算过
	 * @return
	 */
	public Integer getEnd() {
		return getStart() + getPageSize();
	}
	public String getStartTimeStr() {
		return startTimeStr;
	}
	public void setStartTimeStr(String startTimeStr) {
		this.startTimeStr = startTimeStr;
		this.startTime = DateUtils.converToDate(startTimeStr);
	}
	public String getEndTimeStr() {
		return endTimeStr;
	}
	public void setEndTimeStr(String endTimeStr) {
		this.endTimeStr = endTimeStr;
		this.endTime = DateUtils.converToDate(endTimeStr);
	}
	public Integer getNeedPage() {
		return needPage;
	}
	public void setNeedPage(Integer needPage) {
		this.needPage = needPage;
	}
	
}
